﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FrbaCommerce.Historial_Cliente
{
    public partial class HistorialCliente : Form
    {
        Usuario usuarioLogueado;

        public HistorialCliente(Usuario usuarioLogueado)
        {
            InitializeComponent();
            this.usuarioLogueado = usuarioLogueado;
        }

        private void btnGenerar_Click(object sender, EventArgs e)
        {
            DataSet data = new DataSet();
            ConexionSql conexion = new ConexionSql();

            try
            {
                data = conexion.ejecutarConsulta(armarQuery());
                if (data.Tables[0].Rows.Count == 0)
                { 
                    MessageBox.Show("No hay datos para mostrar");
                }
                dgvHistorial.DataSource = data.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problema de conexión con la BD: " + ex.Message);
            }

        }

        private String armarQuery () 
        {
            String query="";

            if (String.Compare(cbxOpciones.Text, "Compras") == 0)
            {
                query = "SELECT c.cod_publi as 'Código de Publicación', c.fecha as 'Fecha de Compra', c.cantidad as 'Cantidad' ";
                query += " FROM ASDF.Bitacora_Compras c WHERE usuario =" + this.usuarioLogueado.Id.ToString();
            }

            else if (String.Compare(cbxOpciones.Text, "Ofertas") == 0)
            {
                query = "SELECT o1.cod_publi as 'Código de Publicación', o1.monto as 'Monto', 'X' as 'Ganadora'";
                query += " FROM ASDF.Bitacora_Ofertas o1 WHERE o1.monto = (SELECT MAX(o.monto) FROM ASDF.Bitacora_Ofertas o where o.cod_publi = o1.cod_publi)";
                query += " and o1.usuario =" + this.usuarioLogueado.Id.ToString();
                query += " UNION SELECT o1.cod_publi as 'Código de Publicación', o1.monto as 'Monto', '' as 'Ganadora'";
                query += " FROM ASDF.Bitacora_Ofertas o1 WHERE o1.monto != (SELECT MAX(o.monto) FROM ASDF.Bitacora_Ofertas o where o.cod_publi = o1.cod_publi)";
                query += "and o1.usuario =" + this.usuarioLogueado.Id.ToString();
            }

            else if (String.Compare(cbxOpciones.Text, "Calificaciones otorgadas") == 0)
            {
                query = "SELECT cod_calificacion as 'Código de Calificación', cod_publi as 'Código de publicacion', cant_estrellas as 'Calificación otorgada', descripcion as 'Descripción'";
                query += " FROM ASDF.Bitacora_Calificacion WHERE usuario=" + this.usuarioLogueado.Id.ToString();
            }

            else if (String.Compare(cbxOpciones.Text, "Calificaciones recibidas") == 0)
            {
                query = "SELECT p.cod as 'Código de Publicación', c.cant_estrellas AS 'Calificación', c.descripcion AS 'Descripción',  u.username AS 'Usuario'";
                query += " FROM ASDF.Publicacion p, ASDF.Bitacora_Calificacion c,  ASDF.Usuario u";
                query += " WHERE p.usuario ="+this.usuarioLogueado.Id.ToString();
                query += " AND p.cod = c.cod_publi AND u.id = c.usuario";
            }

            return query;
        }
    }
}
